package dao;


import com.google.inject.ImplementedBy;
import models.ApplyInfo_C_Entity;
import models.Result_Entity;
import models.XMLString_Entity;
import services.ApplyInfo_Repository_JPA;

import java.util.List;
import java.util.concurrent.CompletionStage;


/**
 * This interface provides a non-blocking API for possibly blocking operations.
 */
@ImplementedBy(ApplyInfo_Repository_JPA.class)
public interface ApplyInfo_Repository {

    //CompletionStage<ApplyInfo_T_Entity> getApplyByID (Integer ApplyID);
    CompletionStage<List<ApplyInfo_C_Entity>> getApplyList(String StartDate, String EndDate, String PhoneNumber, String AuditStatus, String productName);
	CompletionStage<List<ApplyInfo_C_Entity>> getApplyInfoList(String StartDate, String EndDate, String PhoneNumber, String AuditStatus);
   //CompletionStage<List<Object>> CreatNewApply(List <JsonNode> PhoneNumber, List <JsonNode> fd_DeliveryOrderid, List <JsonNode> fd_SubId, List <JsonNode> TruckNo, List <JsonNode> DeliveryDate, List <JsonNode> DeliveryQty , List <JsonNode> UnLoadPlace , List <JsonNode> CirCleTime);
   CompletionStage<List<Object>> CreatNewApply(String PhoneNumber, String fd_DeliveryOrderid, String fd_SubId, String TruckNo, String DeliveryDate, String DeliveryQty, String UnLoadPlace, String CirCleTime);
    CompletionStage<String> aduit(String applicationId, String result, String reason, Long bookTime);
    CompletionStage<String> cancleApply(Integer ApplyID);
    CompletionStage<List<Result_Entity>> pcancleApply(String PhoneNumber, String ApplyNumber);
    CompletionStage<List<XMLString_Entity>> AuditApplyBatch(String PhoneNumber, String ApplyIDs);
    CompletionStage<List<XMLString_Entity>> cancleApplyBatch(String PhoneNumber, String ApplyIDs, String reason);
}
